package cam.School.DataAccessObject;

import java.util.List;
import cam.School.DAOException.DAOException;
import cam.School.DataTransfertObject.DocumentDTO;

public interface DocumentDAO {
		
		public DocumentDTO getById(Long id) throws DAOException;

		public List<DocumentDTO> getAll() throws DAOException;

		public void create(DocumentDTO document) throws IllegalArgumentException,
				DAOException;

		public void update(DocumentDTO document) throws IllegalArgumentException,
				DAOException;

		public boolean delete(Long id);

		public DocumentDTO getByName(String documentName);

		public DocumentDTO getByCategory(String categoryName);

		public DocumentDTO getByState(boolean state);

	}
